import 'package:equatable/equatable.dart';

class TrainingSettings extends Equatable {
  const TrainingSettings({
    required this.trainingLexicalItemSelectedMaxCount,
    required this.trainingLexicalItemEffectiveMaxCount,
    required this.trainingLexicalItemMaxCountChangePermitted,
    required this.exerciseShuffleEnabled,
    required this.exerciseShuffleEnablementEffective,
    required this.exerciseShuffleEnablementChangePermitted,
    required this.forgottenLexicalItemTrainingEnabled,
    required this.forgottenLexicalItemTrainingEnablementEffective,
    required this.forgottenLexicalItemTrainingEnablementChangePermitted,
    required this.exerciseEnablementChangePermitted,
    required this.translationSelectionExerciseEnabled,
    required this.translationSelectionExerciseEnablementEffective,
    required this.audioExerciseEnabled,
    required this.audioExerciseEnablementEffective,
    required this.typingExerciseEnabled,
    required this.typingExerciseEnablementEffective,
  });

  final int trainingLexicalItemSelectedMaxCount;
  final int trainingLexicalItemEffectiveMaxCount;
  final bool trainingLexicalItemMaxCountChangePermitted;
  final bool exerciseShuffleEnabled;
  final bool exerciseShuffleEnablementEffective;
  final bool exerciseShuffleEnablementChangePermitted;
  final bool forgottenLexicalItemTrainingEnabled;
  final bool forgottenLexicalItemTrainingEnablementEffective;
  final bool forgottenLexicalItemTrainingEnablementChangePermitted;
  final bool exerciseEnablementChangePermitted;
  final bool translationSelectionExerciseEnabled;
  final bool translationSelectionExerciseEnablementEffective;
  final bool audioExerciseEnabled;
  final bool audioExerciseEnablementEffective;
  final bool typingExerciseEnabled;
  final bool typingExerciseEnablementEffective;

  @override
  List<Object?> get props {
    return [
      trainingLexicalItemSelectedMaxCount,
      trainingLexicalItemEffectiveMaxCount,
      trainingLexicalItemMaxCountChangePermitted,
      exerciseShuffleEnabled,
      exerciseShuffleEnablementEffective,
      exerciseShuffleEnablementChangePermitted,
      forgottenLexicalItemTrainingEnabled,
      forgottenLexicalItemTrainingEnablementEffective,
      forgottenLexicalItemTrainingEnablementChangePermitted,
      exerciseEnablementChangePermitted,
      translationSelectionExerciseEnabled,
      translationSelectionExerciseEnablementEffective,
      audioExerciseEnabled,
      audioExerciseEnablementEffective,
      typingExerciseEnabled,
      typingExerciseEnablementEffective,
    ];
  }
}
